<?php

class backendConfiguration extends sfApplicationConfiguration
{
  public function configure()
  {
    $this->dispatcher->connect('admin.delete_object', array($this,'deleteDelegate'));
  }

  /**
   * Delegado de eliminacion de registro.
   * 
   * La operación de registro por defecto de symfony no controla 
   * el error de integridad referencial producido por el RDBMS por
   * lo que se deja la ejecucion de esa operacion a este metodo.
   */
   public function deleteDelegate(sfEvent $event)
   {
     $action = $event->getSubject();
     $parameters = $event->getParameters();
     $model = $parameters['object'];
     $referer = $action->getRequest()->getReferer();

     try {
         $model->delete();
     } catch (Exception $e) {
         $action->getUser()->setFlash('error','No se puedo eliminar '.$model.', existen referencias asociadas.'); 
         $action->redirect($referer);  
     }
  }
}
